// 从之前new操作 变成了 createStore方法生成store实例
// 其余vuex中的选项和之前学的没有任何变化
import { createStore } from 'vuex'
import cart from './modules/cart'
import user from './modules/user'
import createPersistedstate from 'vuex-persistedstate'
import category from './modules/category'
// import Cookies from 'js-cookie'

export default createStore({
  strict: true, // 要求
  state: {
  },
  getters: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    cart,
    user,
    category
  },
  plugins: [
    // 放入vuex的三方插件 插件是对于vuex本身功能增强
    createPersistedstate({
      key: 'erabbit-client-pc-store', // 存入本地时key
      paths: ['user', 'cart'] // 哪个模块要使用持久化的机制
      // storage: {
      //   getItem: key => Cookies.get(key),
      //   setItem: (key, value) => Cookies.set(key, value, { expires: 7 }),
      //   removeItem: key => Cookies.remove(key)
      // }
    })
  ]
})
